/**
 * 仿写JSON内置API的parse方法
 * @param {String} javaData JSON数据格式
 * @returns Object
 */
 function parse(javaData) {
    // 1 去掉 【" { } 空格】
    let str = javaData.replace(/"|{|}|\s/g,'')
    // 2 按照【,】进行分割
    let arr = str.split(',')
    // 4 遍历上面，定义空对象
    let obj = {}
    // 3 遍历 itme=你所要去掉的结果
    arr.forEach(item => {
        // 5 遍历里面：按照【:】分割
        let temp = item.split(':')
        // 6 三元方式遍历里面：数组第一个值是键，数组第二个值是值
        obj[temp[0]] = isNaN(Number(temp[1])) ? temp[1] : Number(temp[1])
    })
    return obj
}

/**
* 仿写JSON内置API的stringify方法
* @param {Object} obj 标准普通对象
* @returns String
*/

function stringify(obj) {
    // 1 定义空数组
    let arr = []
    // 2 遍历对象，将里面的【键、值】push到 1 空数组里
    for (let key in obj) {
        let val = obj[key]
        // 判断 val 里数据类型是不是【布尔类型】或【数字类型】
        if (!['boolean','number'].includes(typeof val)) {
            val = `"${obj[key]}"`
        }
        // 如果不是【布尔类型】或【数字类型】，则拼接【"" ：】，最后push到 1 里面的空数组中
        arr.push(`"${key}":${val}`)
    }
    // 用join的方法【','】将数组变成字符串
    return `{${arr.join(',')}}`
}

